<!DOCTYPE html>
<html lang="en-US">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>compare_obj [HALCON算子参考手册]</title>
<style type="text/css">
      body {
    color: #000000;
    background-color: #ffffff;
    margin: 0;
    font-family: Arial, Helvetica, sans-serif;
}

.body_main {
    margin-left: 35px;
    margin-right: 35px;
}

@media screen and (min-width:992px) {

    .body_main {
        margin-left: 10%;
        margin-right: 10%;
    }

    table.toctable {
        width: 80%
    }
}

@media screen and (min-width:1400px) {

    .body_main {
        margin-left: 15%;
        margin-right: 15%;
    }

    table.toctable {
        width: 70%
    }
}

body>div ul ul {
    margin-left: inherit;
}

a:link {
    color: #0044cc;
}

a:link,
a:visited {
    text-decoration: none;
}

a:link:hover,
a:visited:hover {
    text-decoration: underline;
}

th {
    text-align: left;
}

h1,
h2,
h3,
h4,
h5,
h6 {
    text-rendering: optimizeLegibility;
    color: #666666;
}

code {
    font-family: monospace,monospace;
}

h1 a.halconoperator {
    font-family: Arial, Helvetica, sans-serif;
    color: #666666;
}

h2 a.halconoperator {
    font-family: Arial, Helvetica, sans-serif;
    color: #666666;
}

hr {
    border: 0;
    border-top: solid 1px #f28d26;
}

.pre {
    display: block;
    padding-bottom: 1ex;
    font-family: monospace;
    white-space: pre;
}

pre {
    font-family: monospace, monospace;
    padding: 1ex;
    white-space: pre-wrap;
}

.toc {
    font-size: 80%;
    border-top: 1px dashed #f28d26;
    border-bottom: 1px dashed #f28d26;
    padding-top: 5px;
    padding-bottom: 5px;
}

.inv {
    margin: 0;
    border: 0;
    padding: 0;
}

.banner {
    color: #666666;
    padding-left: 1em;
}

.logo {
    background-color: white;
}

.keyboard {
    font-size: 80%;
    padding-left: 3px;
    padding-right: 3px;
    border-radius: 5px;
    border-width: 1px;
    border-style: solid;
    border-color: #f28d26;
    background-color: #f3f3f3;
}

.warning {
    margin-top: 2ex;
    margin-bottom: 1ex;
    padding: 10px;
    text-align: center;
    border: 1px solid;
    color: #bb0000;
    background-color: #fff7f7
}

.imprint {
    margin-top: 1ex;
    font-size: 80%;
    color: #666666;
}

.imprinthead {
    font-weight: bolder;
    color: #666666;
}

.indexlink {
    text-align: right;
    padding-bottom: 5px;
}

.postscript {
    margin-top: 2ex;
    font-size: 80%;
    color: #666666
}

.evenrow {
    background-color: #e7e7ef;
    vertical-align: top;
}

.oddrow {
    background-color: #f7f7ff;
    vertical-align: top;
}

.headrow {
    background-color: #97979f;
    color: #ffffff;
    vertical-align: top;
}

.logorow {
    vertical-align: top;
}

.error {
    color: red;
}

.var {
    font-style: italic
}

.halconoperator {
    font-family: monospace, monospace;
}

span.operator {
    font-family: monospace, monospace;
}

span.procedure {
    font-family: monospace, monospace;
}

span.operation {
    font-family: monospace, monospace;
}

span.feature {
    font-family: Arial, Helvetica, Homerton, sans-serif;
}

ul {
    padding-left: 1.2em;
}

li.dot {
    list-style-type: square;
    color: #f28d26;
}

.breadcrumb {
    font-size: 80%;
    color: white;
    background-color: #062d64;
    margin-bottom: 20px;
    padding-left: 35px;
    padding-right: 35px;
    padding-bottom: 15px;
}

.webbar {
    font-size: 80%;
    background-color: #dddddd;
    margin-top: 0px;
    margin-left: -35px;
    margin-right: -35px;
    margin-bottom: 0px;
    padding-top: 5px;
    padding-left: 35px;
    padding-right: 35px;
    padding-bottom: 5px;
}

.footer {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    border-top: 1px dashed #f28d26;
    font-size: 80%;
    color: #666666;
    padding-bottom: 8px;
}

.footer .socialmedia a {
    padding-left: 7px;
}

.socialmedia {
    padding-top: 10px;
}

.copyright {
    margin-top: 19px;
}

.breadcrumb a {
    color: #ffffff;
    border-bottom: 1px solid white;
}

.breadcrumb a:link:hover,
.breadcrumb a:visited:hover {
    text-decoration: none;
    border-bottom: none;
}

.heading {
    margin-top: 1ex;
    font-size: 110%;
    font-weight: bold;
    color: #666666;
}

.text {
    color: black;
}

.example {
    font-size: 80%;
    background-color: #f3f3f3;
    border: 1px dashed #666666;
    padding: 10px;
}

.displaymath {
    display: block;
    text-align: center;
    margin-top: 1ex;
    margin-bottom: 1ex;
}

.title {
    float: left;
    padding-top: 3px;
    padding-bottom: 3px;
}

.signnote {
    font-family: Arial, Helvetica, Homerton, sans-serif;
    font-size: 80%;
    color: #666666;
    font-weight: lighter;
    font-style: italic
}

.par {
    margin-bottom: 1.5em;
}

.parhead {
    text-align: right;
}

.parname {
    float: left;
}

.pardesc {
    font-size: 85%;
    margin-top: 0.5em;
    margin-bottom: 0.5em;
    margin-left: 2em;
}

.parcat {
    color: #666;
    font-weight: bold;
}

*[data-if=cpp],
*[data-if=c],
*[data-if=dotnet],
*[data-if=com],
*[data-if=python] {
    display: none;
}

.tabbar {
    text-align: right;
    border-bottom: 1px solid #f28d26;
    margin-bottom: 0.5em;
}

ul.tabs {
    padding-top: 3px;
    padding-bottom: 3px;
    margin-top: 10px;
    margin-bottom: 0;
    font-size: 80%
}

ul.tabs li {
    padding-top: 3px;
    padding-bottom: 3px;
    display: inline;
    overflow: hidden;
    list-style-type: none;
    margin: 0;
    margin-left: 8px;
    border-top: 1px solid #666;
    border-left: 1px solid #666;
    border-right: 1px solid #666;
}

ul.tabs li.active {
    border-left: 1px solid #f28d26;
    border-right: 1px solid #f28d26;
    border-top: 1px solid #f28d26;
    border-bottom: 1px solid #fff;
}

ul.tabs li.inactive {
    background-color: #eee;
}

ul.tabs li a {
    padding-left: 5px;
    padding-right: 5px;
    color: #666;
}

ul.tabs li a:link:hover {
    text-decoration: none;
}

ul.tabs li.inactive a {
    color: #666;
}

ul.tabs li.active a {
    color: black;
}

dl.generic dd {
    margin-bottom: 1em;
}

.pari {
    color: olive;
}

.paro {
    color: maroon;
}

.comment {
    font-size: 80%;
    color: green;
    white-space: nowrap;
}

table.grid {
    border-collapse: collapse;
}

table.grid td {
    padding: 5px;
    border: 1px solid;
}

table.layout {
    border: 0px;
}

table.layout td {
    padding: 5px;
}

table.table {
    border-collapse: collapse;
}

table.table td {
    padding: 5px;
    border-left: 0px;
    border-right: 0px;
}

table.table tr:last-child {
    border-bottom: 1px solid;
}

table.table th {
    padding: 5px;
    border-top: 1px solid;
    border-bottom: 1px solid;
    border-left: 0px;
    border-right: 0px;
}

.details_summary {
    cursor: pointer;
}

table.toctable {
    width: 100%;
}

table.toctable col:first-child {
    width: 20%;
}

table.toctable col:nth-last-child(2) {
    width: 8%;
}

table.altcolored tr:nth-child(even) {
    background-color: #f3f3f3;
}

    </style>
<!--OP_REF_STYLE_END-->
<script>
    <!--
var active_lang='hdevelop';function switchVisibility(obj,active_lang,new_lang)
{var display_style='inline';
for(var i=0;i<obj.length;i++)
{if(obj.item(i).getAttribute('data-if')==new_lang)
{obj.item(i).style.display=display_style;}
if(obj.item(i).getAttribute('data-if')==active_lang)
{obj.item(i).style.display='none';}}
return;}
function toggleLanguage(new_lang,initial)
{if(active_lang!=new_lang)
{var lis=document.getElementsByTagName('li');for(var i=0;i<lis.length;i++)
{if(lis.item(i).id=='syn-'+new_lang)
{lis.item(i).className='active';}
else
{lis.item(i).className='inactive';}}
var divs=document.getElementsByTagName('div');var spans=document.getElementsByTagName('span');switchVisibility(divs,active_lang,new_lang);switchVisibility(spans,active_lang,new_lang);if(!initial)
{setCookie("halcon_reference_language",new_lang,null,null);}
active_lang=new_lang;}
return;}
function setCookie(name,value,domain,exp_offset,path,secure)
{localStorage.setItem(name,value);}
function getCookie(name)
{return localStorage.getItem(name);}
function initialize()
{var qs=location.href.split('?')[1];var qs_lang_raw=location.href.split('interface=')[1];var qs_lang;if(qs_lang_raw)
{qs_lang=qs_lang_raw.split('#')[0];}
var cookie_lang=getCookie("halcon_reference_language");var new_lang;if((qs_lang=="hdevelop")||(qs_lang=="dotnet")||(qs_lang=="python")||(qs_lang=="cpp")||(qs_lang=="c"))
{new_lang=qs_lang;setCookie("halcon_reference_language",new_lang,null,null);}
else if((cookie_lang=="hdevelop")||(cookie_lang=="dotnet")||(cookie_lang=="python")||(cookie_lang=="cpp")||(cookie_lang=="c"))
{new_lang=cookie_lang;}
else
{new_lang="hdevelop";}
toggleLanguage(new_lang,1);return;}
-->

  </script>
</head>
<body onload="initialize();">
<div class="breadcrumb">
<br class="inv"><a href="index.html">目录</a> / <a href="toc_object.html">Object</a> / <a href="toc_object_information.html">Information</a><br class="inv">
</div>
<div class="body_main">
<div class="tabbar"><ul class="tabs">
<li id="syn-hdevelop" class="active"><a href="javascript:void(0);" onclick="toggleLanguage('hdevelop')" onfocus="blur()">HDevelop</a></li>
<li id="syn-dotnet" class="inactive"><a href="javascript:void(0);" onclick="toggleLanguage('dotnet')" onfocus="blur()">.NET</a></li>
<li id="syn-python" class="inactive"><a href="javascript:void(0);" onclick="toggleLanguage('python')" onfocus="blur()">Python</a></li>
<li id="syn-cpp" class="inactive"><a href="javascript:void(0);" onclick="toggleLanguage('cpp')" onfocus="blur()">C++</a></li>
<li id="syn-c" class="inactive"><a href="javascript:void(0);" onclick="toggleLanguage('c')" onfocus="blur()">C</a></li>
</ul></div>
<div class="indexlink">
<a href="index_classes.html"><span data-if="dotnet" style="display:none;">类别</span><span data-if="cpp" style="display:none;">类别</span></a><span data-if="dotnet" style="display:none;"> | </span><span data-if="cpp" style="display:none;"> | </span><a href="index_by_name.html">算子列表</a>
</div>
<!--OP_REF_HEADER_END-->
<h1 id="sec_name">
<span data-if="hdevelop" style="display:inline;">compare_obj</span><span data-if="c" style="display:none;">compare_obj</span><span data-if="cpp" style="display:none;">CompareObj</span><span data-if="dotnet" style="display:none;">CompareObj</span><span data-if="python" style="display:none;">compare_obj</span> (算子名称)</h1>
<h2>名称</h2>
<p><code><span data-if="hdevelop" style="display:inline;">compare_obj</span><span data-if="c" style="display:none;">compare_obj</span><span data-if="cpp" style="display:none;">CompareObj</span><span data-if="dotnet" style="display:none;">CompareObj</span><span data-if="python" style="display:none;">compare_obj</span></code> — Compare iconic objects regarding equality.</p>
<h2 id="sec_synopsis">参数签名</h2>
<div data-if="hdevelop" style="display:inline;">
<p>
<code><b>compare_obj</b>(<a href="#Objects1"><i>Objects1</i></a>, <a href="#Objects2"><i>Objects2</i></a> :  : <a href="#Epsilon"><i>Epsilon</i></a> : <a href="#IsEqual"><i>IsEqual</i></a>)</code></p>
</div>
<div data-if="c" style="display:none;">
<p>
<code>Herror <b>compare_obj</b>(const Hobject <a href="#Objects1"><i>Objects1</i></a>, const Hobject <a href="#Objects2"><i>Objects2</i></a>, double <a href="#Epsilon"><i>Epsilon</i></a>, Hlong* <a href="#IsEqual"><i>IsEqual</i></a>)</code></p>
<p>
<code>Herror <b>T_compare_obj</b>(const Hobject <a href="#Objects1"><i>Objects1</i></a>, const Hobject <a href="#Objects2"><i>Objects2</i></a>, const Htuple <a href="#Epsilon"><i>Epsilon</i></a>, Htuple* <a href="#IsEqual"><i>IsEqual</i></a>)</code></p>
</div>
<div data-if="cpp" style="display:none;">
<p>
<code>void <b>CompareObj</b>(const HObject&amp; <a href="#Objects1"><i>Objects1</i></a>, const HObject&amp; <a href="#Objects2"><i>Objects2</i></a>, const HTuple&amp; <a href="#Epsilon"><i>Epsilon</i></a>, HTuple* <a href="#IsEqual"><i>IsEqual</i></a>)</code></p>
<p>
<code>Hlong <a href="HObject.html">HObject</a>::<b>CompareObj</b>(const HObject&amp; <a href="#Objects2"><i>Objects2</i></a>, const HTuple&amp; <a href="#Epsilon"><i>Epsilon</i></a>) const</code></p>
<p>
<code>Hlong <a href="HObject.html">HObject</a>::<b>CompareObj</b>(const HObject&amp; <a href="#Objects2"><i>Objects2</i></a>, double <a href="#Epsilon"><i>Epsilon</i></a>) const</code></p>
<p>
<code>Hlong <a href="HImage.html">HImage</a>::<b>CompareObj</b>(const HImage&amp; <a href="#Objects2"><i>Objects2</i></a>, const HTuple&amp; <a href="#Epsilon"><i>Epsilon</i></a>) const</code></p>
<p>
<code>Hlong <a href="HImage.html">HImage</a>::<b>CompareObj</b>(const HImage&amp; <a href="#Objects2"><i>Objects2</i></a>, double <a href="#Epsilon"><i>Epsilon</i></a>) const</code></p>
<p>
<code>Hlong <a href="HRegion.html">HRegion</a>::<b>CompareObj</b>(const HRegion&amp; <a href="#Objects2"><i>Objects2</i></a>, const HTuple&amp; <a href="#Epsilon"><i>Epsilon</i></a>) const</code></p>
<p>
<code>Hlong <a href="HRegion.html">HRegion</a>::<b>CompareObj</b>(const HRegion&amp; <a href="#Objects2"><i>Objects2</i></a>, double <a href="#Epsilon"><i>Epsilon</i></a>) const</code></p>
<p>
<code>Hlong <a href="HXLD.html">HXLD</a>::<b>CompareObj</b>(const HXLD&amp; <a href="#Objects2"><i>Objects2</i></a>, const HTuple&amp; <a href="#Epsilon"><i>Epsilon</i></a>) const</code></p>
<p>
<code>Hlong <a href="HXLD.html">HXLD</a>::<b>CompareObj</b>(const HXLD&amp; <a href="#Objects2"><i>Objects2</i></a>, double <a href="#Epsilon"><i>Epsilon</i></a>) const</code></p>
<p>
<code>Hlong <a href="HXLDCont.html">HXLDCont</a>::<b>CompareObj</b>(const HXLDCont&amp; <a href="#Objects2"><i>Objects2</i></a>, const HTuple&amp; <a href="#Epsilon"><i>Epsilon</i></a>) const</code></p>
<p>
<code>Hlong <a href="HXLDCont.html">HXLDCont</a>::<b>CompareObj</b>(const HXLDCont&amp; <a href="#Objects2"><i>Objects2</i></a>, double <a href="#Epsilon"><i>Epsilon</i></a>) const</code></p>
<p>
<code>Hlong <a href="HXLDPoly.html">HXLDPoly</a>::<b>CompareObj</b>(const HXLDPoly&amp; <a href="#Objects2"><i>Objects2</i></a>, const HTuple&amp; <a href="#Epsilon"><i>Epsilon</i></a>) const</code></p>
<p>
<code>Hlong <a href="HXLDPoly.html">HXLDPoly</a>::<b>CompareObj</b>(const HXLDPoly&amp; <a href="#Objects2"><i>Objects2</i></a>, double <a href="#Epsilon"><i>Epsilon</i></a>) const</code></p>
<p>
<code>Hlong <a href="HXLDPara.html">HXLDPara</a>::<b>CompareObj</b>(const HXLDPara&amp; <a href="#Objects2"><i>Objects2</i></a>, const HTuple&amp; <a href="#Epsilon"><i>Epsilon</i></a>) const</code></p>
<p>
<code>Hlong <a href="HXLDPara.html">HXLDPara</a>::<b>CompareObj</b>(const HXLDPara&amp; <a href="#Objects2"><i>Objects2</i></a>, double <a href="#Epsilon"><i>Epsilon</i></a>) const</code></p>
<p>
<code>Hlong <a href="HXLDModPara.html">HXLDModPara</a>::<b>CompareObj</b>(const HXLDModPara&amp; <a href="#Objects2"><i>Objects2</i></a>, const HTuple&amp; <a href="#Epsilon"><i>Epsilon</i></a>) const</code></p>
<p>
<code>Hlong <a href="HXLDModPara.html">HXLDModPara</a>::<b>CompareObj</b>(const HXLDModPara&amp; <a href="#Objects2"><i>Objects2</i></a>, double <a href="#Epsilon"><i>Epsilon</i></a>) const</code></p>
<p>
<code>Hlong <a href="HXLDExtPara.html">HXLDExtPara</a>::<b>CompareObj</b>(const HXLDExtPara&amp; <a href="#Objects2"><i>Objects2</i></a>, const HTuple&amp; <a href="#Epsilon"><i>Epsilon</i></a>) const</code></p>
<p>
<code>Hlong <a href="HXLDExtPara.html">HXLDExtPara</a>::<b>CompareObj</b>(const HXLDExtPara&amp; <a href="#Objects2"><i>Objects2</i></a>, double <a href="#Epsilon"><i>Epsilon</i></a>) const</code></p>
</div>
<div data-if="com" style="display:none;"></div>
<div data-if="dotnet" style="display:none;">
<p>
<code>static void <a href="HOperatorSet.html">HOperatorSet</a>.<b>CompareObj</b>(<a href="HObject.html">HObject</a> <a href="#Objects1"><i>objects1</i></a>, <a href="HObject.html">HObject</a> <a href="#Objects2"><i>objects2</i></a>, <a href="HTuple.html">HTuple</a> <a href="#Epsilon"><i>epsilon</i></a>, out <a href="HTuple.html">HTuple</a> <a href="#IsEqual"><i>isEqual</i></a>)</code></p>
<p>
<code>int <a href="HObject.html">HObject</a>.<b>CompareObj</b>(<a href="HObject.html">HObject</a> <a href="#Objects2"><i>objects2</i></a>, <a href="HTuple.html">HTuple</a> <a href="#Epsilon"><i>epsilon</i></a>)</code></p>
<p>
<code>int <a href="HObject.html">HObject</a>.<b>CompareObj</b>(<a href="HObject.html">HObject</a> <a href="#Objects2"><i>objects2</i></a>, double <a href="#Epsilon"><i>epsilon</i></a>)</code></p>
<p>
<code>int <a href="HImage.html">HImage</a>.<b>CompareObj</b>(<a href="HImage.html">HImage</a> <a href="#Objects2"><i>objects2</i></a>, <a href="HTuple.html">HTuple</a> <a href="#Epsilon"><i>epsilon</i></a>)</code></p>
<p>
<code>int <a href="HImage.html">HImage</a>.<b>CompareObj</b>(<a href="HImage.html">HImage</a> <a href="#Objects2"><i>objects2</i></a>, double <a href="#Epsilon"><i>epsilon</i></a>)</code></p>
<p>
<code>int <a href="HRegion.html">HRegion</a>.<b>CompareObj</b>(<a href="HRegion.html">HRegion</a> <a href="#Objects2"><i>objects2</i></a>, <a href="HTuple.html">HTuple</a> <a href="#Epsilon"><i>epsilon</i></a>)</code></p>
<p>
<code>int <a href="HRegion.html">HRegion</a>.<b>CompareObj</b>(<a href="HRegion.html">HRegion</a> <a href="#Objects2"><i>objects2</i></a>, double <a href="#Epsilon"><i>epsilon</i></a>)</code></p>
<p>
<code>int <a href="HXLD.html">HXLD</a>.<b>CompareObj</b>(<a href="HXLD.html">HXLD</a> <a href="#Objects2"><i>objects2</i></a>, <a href="HTuple.html">HTuple</a> <a href="#Epsilon"><i>epsilon</i></a>)</code></p>
<p>
<code>int <a href="HXLD.html">HXLD</a>.<b>CompareObj</b>(<a href="HXLD.html">HXLD</a> <a href="#Objects2"><i>objects2</i></a>, double <a href="#Epsilon"><i>epsilon</i></a>)</code></p>
<p>
<code>int <a href="HXLDCont.html">HXLDCont</a>.<b>CompareObj</b>(<a href="HXLDCont.html">HXLDCont</a> <a href="#Objects2"><i>objects2</i></a>, <a href="HTuple.html">HTuple</a> <a href="#Epsilon"><i>epsilon</i></a>)</code></p>
<p>
<code>int <a href="HXLDCont.html">HXLDCont</a>.<b>CompareObj</b>(<a href="HXLDCont.html">HXLDCont</a> <a href="#Objects2"><i>objects2</i></a>, double <a href="#Epsilon"><i>epsilon</i></a>)</code></p>
<p>
<code>int <a href="HXLDPoly.html">HXLDPoly</a>.<b>CompareObj</b>(<a href="HXLDPoly.html">HXLDPoly</a> <a href="#Objects2"><i>objects2</i></a>, <a href="HTuple.html">HTuple</a> <a href="#Epsilon"><i>epsilon</i></a>)</code></p>
<p>
<code>int <a href="HXLDPoly.html">HXLDPoly</a>.<b>CompareObj</b>(<a href="HXLDPoly.html">HXLDPoly</a> <a href="#Objects2"><i>objects2</i></a>, double <a href="#Epsilon"><i>epsilon</i></a>)</code></p>
<p>
<code>int <a href="HXLDPara.html">HXLDPara</a>.<b>CompareObj</b>(<a href="HXLDPara.html">HXLDPara</a> <a href="#Objects2"><i>objects2</i></a>, <a href="HTuple.html">HTuple</a> <a href="#Epsilon"><i>epsilon</i></a>)</code></p>
<p>
<code>int <a href="HXLDPara.html">HXLDPara</a>.<b>CompareObj</b>(<a href="HXLDPara.html">HXLDPara</a> <a href="#Objects2"><i>objects2</i></a>, double <a href="#Epsilon"><i>epsilon</i></a>)</code></p>
<p>
<code>int <a href="HXLDModPara.html">HXLDModPara</a>.<b>CompareObj</b>(<a href="HXLDModPara.html">HXLDModPara</a> <a href="#Objects2"><i>objects2</i></a>, <a href="HTuple.html">HTuple</a> <a href="#Epsilon"><i>epsilon</i></a>)</code></p>
<p>
<code>int <a href="HXLDModPara.html">HXLDModPara</a>.<b>CompareObj</b>(<a href="HXLDModPara.html">HXLDModPara</a> <a href="#Objects2"><i>objects2</i></a>, double <a href="#Epsilon"><i>epsilon</i></a>)</code></p>
<p>
<code>int <a href="HXLDExtPara.html">HXLDExtPara</a>.<b>CompareObj</b>(<a href="HXLDExtPara.html">HXLDExtPara</a> <a href="#Objects2"><i>objects2</i></a>, <a href="HTuple.html">HTuple</a> <a href="#Epsilon"><i>epsilon</i></a>)</code></p>
<p>
<code>int <a href="HXLDExtPara.html">HXLDExtPara</a>.<b>CompareObj</b>(<a href="HXLDExtPara.html">HXLDExtPara</a> <a href="#Objects2"><i>objects2</i></a>, double <a href="#Epsilon"><i>epsilon</i></a>)</code></p>
</div>
<div data-if="python" style="display:none;">
<p>
<code>def <b>compare_obj</b>(<a href="#Objects1"><i>objects_1</i></a>: HObject, <a href="#Objects2"><i>objects_2</i></a>: HObject, <a href="#Epsilon"><i>epsilon</i></a>: Union[float, int]) -&gt; int</code></p>
</div>
<h2 id="sec_description">描述</h2>
<p>该算子 <code><span data-if="hdevelop" style="display:inline">compare_obj</span><span data-if="c" style="display:none">compare_obj</span><span data-if="cpp" style="display:none">CompareObj</span><span data-if="com" style="display:none">CompareObj</span><span data-if="dotnet" style="display:none">CompareObj</span><span data-if="python" style="display:none">compare_obj</span></code> compares iconic objects regarding
equality. The iconic objects are passed in the two input parameters
<a href="#Objects1"><i><code><span data-if="hdevelop" style="display:inline">Objects1</span><span data-if="c" style="display:none">Objects1</span><span data-if="cpp" style="display:none">Objects1</span><span data-if="com" style="display:none">Objects1</span><span data-if="dotnet" style="display:none">objects1</span><span data-if="python" style="display:none">objects_1</span></code></i></a> and <a href="#Objects2"><i><code><span data-if="hdevelop" style="display:inline">Objects2</span><span data-if="c" style="display:none">Objects2</span><span data-if="cpp" style="display:none">Objects2</span><span data-if="com" style="display:none">Objects2</span><span data-if="dotnet" style="display:none">objects2</span><span data-if="python" style="display:none">objects_2</span></code></i></a> in form of (possibly mixed)
tuples of images, regions, or XLDs.
The n-th object in <a href="#Objects1"><i><code><span data-if="hdevelop" style="display:inline">Objects1</span><span data-if="c" style="display:none">Objects1</span><span data-if="cpp" style="display:none">Objects1</span><span data-if="com" style="display:none">Objects1</span><span data-if="dotnet" style="display:none">objects1</span><span data-if="python" style="display:none">objects_1</span></code></i></a> is compared to the n-th object in
<a href="#Objects2"><i><code><span data-if="hdevelop" style="display:inline">Objects2</span><span data-if="c" style="display:none">Objects2</span><span data-if="cpp" style="display:none">Objects2</span><span data-if="com" style="display:none">Objects2</span><span data-if="dotnet" style="display:none">objects2</span><span data-if="python" style="display:none">objects_2</span></code></i></a> (for all n).
If the two passed object tuples have the same length and if all objects
are equal, the parameter <a href="#IsEqual"><i><code><span data-if="hdevelop" style="display:inline">IsEqual</span><span data-if="c" style="display:none">IsEqual</span><span data-if="cpp" style="display:none">IsEqual</span><span data-if="com" style="display:none">IsEqual</span><span data-if="dotnet" style="display:none">isEqual</span><span data-if="python" style="display:none">is_equal</span></code></i></a> is set to 1, otherwise to 0.
</p>
<p>For a short description of the iconic objects that are available in HALCON
see the introduction of chapter <a href="toc_object.html">Object</a>.
</p>
<p>Depending on the type of the input objects, different conditions must be
met for the equality of two objects. In the following, the conditions
for each possible iconic object are listed:
</p>
<dl class="generic">


<dt><b>Images:</b></dt>
<dd>
<p>

For all channels, the gray values of the respective pixels must
not differ by more than <a href="#Epsilon"><i><code><span data-if="hdevelop" style="display:inline">Epsilon</span><span data-if="c" style="display:none">Epsilon</span><span data-if="cpp" style="display:none">Epsilon</span><span data-if="com" style="display:none">Epsilon</span><span data-if="dotnet" style="display:none">epsilon</span><span data-if="python" style="display:none">epsilon</span></code></i></a>.  Note that images are
only compared within their domain (ROI) and they are only equal
if they have the same domain (ROI).
</p>
</dd>

<dt><b>Regions:</b></dt>
<dd>
<p>

The regions must be equal. The parameter <a href="#Epsilon"><i><code><span data-if="hdevelop" style="display:inline">Epsilon</span><span data-if="c" style="display:none">Epsilon</span><span data-if="cpp" style="display:none">Epsilon</span><span data-if="com" style="display:none">Epsilon</span><span data-if="dotnet" style="display:none">epsilon</span><span data-if="python" style="display:none">epsilon</span></code></i></a> has no
effect for the comparison of regions.
</p>
</dd>

<dt><b>XLD contours:</b></dt>
<dd>
<p>

XLD contours must have the same number of points and attributes.
The point coordinates and the attribute values must not differ by
more than <a href="#Epsilon"><i><code><span data-if="hdevelop" style="display:inline">Epsilon</span><span data-if="c" style="display:none">Epsilon</span><span data-if="cpp" style="display:none">Epsilon</span><span data-if="com" style="display:none">Epsilon</span><span data-if="dotnet" style="display:none">epsilon</span><span data-if="python" style="display:none">epsilon</span></code></i></a>.
</p>
</dd>

<dt><b>XLD polygons:</b></dt>
<dd>
<p>

XLD polygons must have the same number of line segments.  The
length and the orientation of these segments as well as the
coordinates of the control points must not differ by more than
<a href="#Epsilon"><i><code><span data-if="hdevelop" style="display:inline">Epsilon</span><span data-if="c" style="display:none">Epsilon</span><span data-if="cpp" style="display:none">Epsilon</span><span data-if="com" style="display:none">Epsilon</span><span data-if="dotnet" style="display:none">epsilon</span><span data-if="python" style="display:none">epsilon</span></code></i></a>.
</p>
</dd>

<dt><b>XLD parallels and extended XLD parallels:</b></dt>
<dd>
<p>

XLD parallels must have an identical index of the start and end
line segment of the parallels of the first polygon (P1) and the
second polygon (P2) as well as identical pointers to the
underlying contours.
</p>
</dd>

<dt><b>Modified XLD parallels:</b></dt>
<dd>
<p>

For modified XLD parallels, the same conditions apply as for XLD
parallels and extended XLD parallels.  Furthermore, the distances
between the line segments of the parallel polygons must be
identical.
</p>
</dd>
</dl>
<p>Note that <code><span data-if="hdevelop" style="display:inline">compare_obj</span><span data-if="c" style="display:none">compare_obj</span><span data-if="cpp" style="display:none">CompareObj</span><span data-if="com" style="display:none">CompareObj</span><span data-if="dotnet" style="display:none">CompareObj</span><span data-if="python" style="display:none">compare_obj</span></code> compares all objects regarding their
actual content.  In contrast <a href="test_equal_obj.html"><code><span data-if="hdevelop" style="display:inline">test_equal_obj</span><span data-if="c" style="display:none">test_equal_obj</span><span data-if="cpp" style="display:none">TestEqualObj</span><span data-if="com" style="display:none">TestEqualObj</span><span data-if="dotnet" style="display:none">TestEqualObj</span><span data-if="python" style="display:none">test_equal_obj</span></code></a> compares only
regions regarding their actual content while for all other objects
their location in memory is compared.
</p>
<h2 id="sec_execution">运行信息</h2>
<ul>
  <li>多线程类型:可重入(与非独占操作符并行运行)。</li>
<li>多线程作用域:全局(可以从任何线程调用)。</li>
  <li>未经并行化处理。</li>
</ul>
<h2 id="sec_parameters">参数表</h2>
  <div class="par">
<div class="parhead">
<span id="Objects1" class="parname"><b><code><span data-if="hdevelop" style="display:inline">Objects1</span><span data-if="c" style="display:none">Objects1</span><span data-if="cpp" style="display:none">Objects1</span><span data-if="com" style="display:none">Objects1</span><span data-if="dotnet" style="display:none">objects1</span><span data-if="python" style="display:none">objects_1</span></code></b> (input_object)  </span><span>object(-array) <code>→</code> <span data-if="hdevelop" style="display:inline">object</span><span data-if="dotnet" style="display:none"><a href="HObject.html">HObject</a></span><span data-if="python" style="display:none">HObject</span><span data-if="cpp" style="display:none"><a href="HObject.html">HObject</a></span><span data-if="c" style="display:none">Hobject</span></span>
</div>
<p class="pardesc">Reference objects.</p>
</div>
  <div class="par">
<div class="parhead">
<span id="Objects2" class="parname"><b><code><span data-if="hdevelop" style="display:inline">Objects2</span><span data-if="c" style="display:none">Objects2</span><span data-if="cpp" style="display:none">Objects2</span><span data-if="com" style="display:none">Objects2</span><span data-if="dotnet" style="display:none">objects2</span><span data-if="python" style="display:none">objects_2</span></code></b> (input_object)  </span><span>object(-array) <code>→</code> <span data-if="hdevelop" style="display:inline">object</span><span data-if="dotnet" style="display:none"><a href="HObject.html">HObject</a></span><span data-if="python" style="display:none">HObject</span><span data-if="cpp" style="display:none"><a href="HObject.html">HObject</a></span><span data-if="c" style="display:none">Hobject</span></span>
</div>
<p class="pardesc">Test objects.</p>
</div>
  <div class="par">
<div class="parhead">
<span id="Epsilon" class="parname"><b><code><span data-if="hdevelop" style="display:inline">Epsilon</span><span data-if="c" style="display:none">Epsilon</span><span data-if="cpp" style="display:none">Epsilon</span><span data-if="com" style="display:none">Epsilon</span><span data-if="dotnet" style="display:none">epsilon</span><span data-if="python" style="display:none">epsilon</span></code></b> (input_control)  </span><span>number <code>→</code> <span data-if="dotnet" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="python" style="display:none">Union[float, int]</span><span data-if="cpp" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="c" style="display:none">Htuple</span><span data-if="hdevelop" style="display:inline"> (real / </span><span data-if="hdevelop" style="display:inline">integer)</span><span data-if="dotnet" style="display:none"> (<i>double</i> / </span><span data-if="dotnet" style="display:none">int / </span><span data-if="dotnet" style="display:none">long)</span><span data-if="cpp" style="display:none"> (<i>double</i> / </span><span data-if="cpp" style="display:none">Hlong)</span><span data-if="c" style="display:none"> (<i>double</i> / </span><span data-if="c" style="display:none">Hlong)</span></span>
</div>
<p class="pardesc">Maximum allowed difference between two gray values or
coordinates etc.</p>
<p class="pardesc"><span class="parcat">Default:
      </span>0.0</p>
<p class="pardesc"><span class="parcat">Suggested values:
      </span>0.0, 1.e-5</p>
</div>
  <div class="par">
<div class="parhead">
<span id="IsEqual" class="parname"><b><code><span data-if="hdevelop" style="display:inline">IsEqual</span><span data-if="c" style="display:none">IsEqual</span><span data-if="cpp" style="display:none">IsEqual</span><span data-if="com" style="display:none">IsEqual</span><span data-if="dotnet" style="display:none">isEqual</span><span data-if="python" style="display:none">is_equal</span></code></b> (output_control)  </span><span>integer <code>→</code> <span data-if="dotnet" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="python" style="display:none">int</span><span data-if="cpp" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="c" style="display:none">Htuple</span><span data-if="hdevelop" style="display:inline"> (integer)</span><span data-if="dotnet" style="display:none"> (<i>int</i> / </span><span data-if="dotnet" style="display:none">long)</span><span data-if="cpp" style="display:none"> (<i>Hlong</i>)</span><span data-if="c" style="display:none"> (<i>Hlong</i>)</span></span>
</div>
<p class="pardesc">Boolean result value.</p>
</div>
<h2 id="sec_result">结果</h2>
<p>该算子 <code><span data-if="hdevelop" style="display:inline">compare_obj</span><span data-if="c" style="display:none">compare_obj</span><span data-if="cpp" style="display:none">CompareObj</span><span data-if="com" style="display:none">CompareObj</span><span data-if="dotnet" style="display:none">CompareObj</span><span data-if="python" style="display:none">compare_obj</span></code> 返回值 <TT>2</TT> (
      <TT>H_MSG_TRUE</TT>)
     if the
parameters are correct.  The behavior in case of empty input (no input
objects available) is set via 该算子
<a href="set_system.html"><code><span data-if="hdevelop" style="display:inline">set_system(::'no_object_result',&lt;Result&gt;:)</span><span data-if="c" style="display:none">set_system("no_object_result",&lt;Result&gt;)</span><span data-if="cpp" style="display:none">SetSystem("no_object_result",&lt;Result&gt;)</span><span data-if="com" style="display:none">SetSystem("no_object_result",&lt;Result&gt;)</span><span data-if="dotnet" style="display:none">SetSystem("no_object_result",&lt;Result&gt;)</span><span data-if="python" style="display:none">set_system("no_object_result",&lt;Result&gt;)</span></code></a>.  If the number of
objects differs an exception is raised.</p>
<h2 id="sec_see">参考其它</h2>
<p>
<code><a href="test_equal_obj.html"><span data-if="hdevelop" style="display:inline">test_equal_obj</span><span data-if="c" style="display:none">test_equal_obj</span><span data-if="cpp" style="display:none">TestEqualObj</span><span data-if="com" style="display:none">TestEqualObj</span><span data-if="dotnet" style="display:none">TestEqualObj</span><span data-if="python" style="display:none">test_equal_obj</span></a></code>, 
<code><a href="test_equal_region.html"><span data-if="hdevelop" style="display:inline">test_equal_region</span><span data-if="c" style="display:none">test_equal_region</span><span data-if="cpp" style="display:none">TestEqualRegion</span><span data-if="com" style="display:none">TestEqualRegion</span><span data-if="dotnet" style="display:none">TestEqualRegion</span><span data-if="python" style="display:none">test_equal_region</span></a></code>
</p>
<h2 id="sec_module">模块</h2>
<p>
Foundation</p>
<!--OP_REF_FOOTER_START-->
<hr>
<div class="indexlink">
<a href="index_classes.html"><span data-if="dotnet" style="display:none;">类别</span><span data-if="cpp" style="display:none;">类别</span></a><span data-if="dotnet" style="display:none;"> | </span><span data-if="cpp" style="display:none;"> | </span><a href="index_by_name.html">算子列表</a>
</div>
<div class="footer">
<div class="copyright">HALCON算子参考手册 Copyright © 2015-2023 51Halcon</div>
</div>
</div>
</body>
</html>
